#include <algorithm>
#include <vector>
#include <iostream>
#include <iterator>
#include <cmath>
#include <cstdlib>
#include <catch2/catch.hpp>
#include <utils.hpp>
#include <wasm_config.hpp>
#include <eosio/vm/backend.hpp>

using namespace eosio;
using namespace eosio::vm;
extern wasm_allocator wa;

BACKEND_TEST_CASE( "Testing wasm <f64_cmp_0_wasm>", "[f64_cmp_0_wasm_tests]" ) {
   using backend_t = backend<std::nullptr_t, TestType>;
   auto code = backend_t::read_wasm( std::string(wasm_directory) + "f64_cmp.0.wasm");
   backend_t bkend( code );
   bkend.set_wasm_allocator( &wa );
   bkend.initialize(nullptr);

   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "eq", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ne", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "lt", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "le", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "gt", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9223372036854775808)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(0)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9223372036854775809)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(1)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9227875636482146304)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4503599627370496)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13826050856027422720)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4602678819172646912)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13830554455654793216)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4607182418800017408)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(13842132293034192152)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(4618760256179416344)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18442240474082181119)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9218868437227405311)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(1));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18442240474082181120)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9218868437227405312)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(9223372036854775808)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(0)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(9223372036854775809)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(1)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(9227875636482146304)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(4503599627370496)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(13826050856027422720)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(4602678819172646912)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(13830554455654793216)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(4607182418800017408)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(13842132293034192152)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(4618760256179416344)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(18442240474082181119)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(9218868437227405311)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(18442240474082181120)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(9218868437227405312)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18444492273895866368)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(18443366373989023744)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(18444492273895866368)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(18443366373989023744)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(9221120237041090560)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9221120237041090560)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
   CHECK(bkend.call_with_return(nullptr, "env", "ge", bit_cast<double>(UINT64_C(9219994337134247936)), bit_cast<double>(UINT64_C(9219994337134247936)))->to_ui32() == UINT32_C(0));
}

BACKEND_TEST_CASE( "Testing wasm <f64_cmp_1_wasm>", "[f64_cmp_1_wasm_tests]" ) {
   using backend_t = backend<std::nullptr_t, TestType>;
   auto code = backend_t::read_wasm( std::string(wasm_directory) + "f64_cmp.1.wasm");
   CHECK_THROWS_AS(backend_t(code), std::exception);
}

BACKEND_TEST_CASE( "Testing wasm <f64_cmp_2_wasm>", "[f64_cmp_2_wasm_tests]" ) {
   using backend_t = backend<std::nullptr_t, TestType>;
   auto code = backend_t::read_wasm( std::string(wasm_directory) + "f64_cmp.2.wasm");
   CHECK_THROWS_AS(backend_t(code), std::exception);
}

BACKEND_TEST_CASE( "Testing wasm <f64_cmp_3_wasm>", "[f64_cmp_3_wasm_tests]" ) {
   using backend_t = backend<std::nullptr_t, TestType>;
   auto code = backend_t::read_wasm( std::string(wasm_directory) + "f64_cmp.3.wasm");
   CHECK_THROWS_AS(backend_t(code), std::exception);
}

BACKEND_TEST_CASE( "Testing wasm <f64_cmp_4_wasm>", "[f64_cmp_4_wasm_tests]" ) {
   using backend_t = backend<std::nullptr_t, TestType>;
   auto code = backend_t::read_wasm( std::string(wasm_directory) + "f64_cmp.4.wasm");
   CHECK_THROWS_AS(backend_t(code), std::exception);
}

BACKEND_TEST_CASE( "Testing wasm <f64_cmp_5_wasm>", "[f64_cmp_5_wasm_tests]" ) {
   using backend_t = backend<std::nullptr_t, TestType>;
   auto code = backend_t::read_wasm( std::string(wasm_directory) + "f64_cmp.5.wasm");
   CHECK_THROWS_AS(backend_t(code), std::exception);
}

BACKEND_TEST_CASE( "Testing wasm <f64_cmp_6_wasm>", "[f64_cmp_6_wasm_tests]" ) {
   using backend_t = backend<std::nullptr_t, TestType>;
   auto code = backend_t::read_wasm( std::string(wasm_directory) + "f64_cmp.6.wasm");
   CHECK_THROWS_AS(backend_t(code), std::exception);
}

